/**
 * 作者：Sky
 * QQ：2780619724
 * 此类用于滑动找元素
 * 方法1，向上滑动找元素，已完成；
 * 方法2，向下滑动找元素，待完成；
 */


import io.appium.java_client.android.AndroidDriver;
import org.openqa.selenium.By;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.Point;
import org.openqa.selenium.WebElement;

public class SwipeFindElement {

    AndroidDriver<WebElement> driver;
    boolean elementIsDispaly = false;
    WebElement wel = null;

    public SwipeFindElement(AndroidDriver<WebElement> driver) {
        this.driver = driver;
    }


    //向上滑动找元素；
    //如果元素没出现，从height*4/5滑动到height*1/5
    //如果元素出现但靠底部并且Y坐标大于 height*4/5， Y轴滑动(从height*4/5滑动到height*1/5);
    //由于在执行滑动时会聚焦在滑动起始点的控件上，所以此类仅滑动使元素出现，在main方法里面再findElement元素一次；
    public void swipeUpFindElement(By by){

        //得到屏幕的尺寸
        Dimension size = driver.manage().window().getSize();
        int height = size.height;
        int width = size.width;
        //System.out.println("屏幕高： "+height);
        //System.out.println("屏幕宽： "+width);
        //System.out.println();


        while ( elementIsDispaly==false ) {
            try {
                wel = driver.findElement(by); //找元素;
                elementIsDispaly  = wel.isDisplayed();
                //System.out.println("元素是否显示：" + elementIsDispaly);

                if(elementIsDispaly == true){
                    Point point = wel.getLocation();
                    int elementX = point.getX();
                    int elementY = point.getY();
                    //System.out.println("元素的X坐标： " + elementX);
                    //System.out.println("元素的Y坐标： " + elementY);
                    if(elementY>(height*4/5)){
                        //System.out.println("元素靠底部并且Y坐标大于 height*4/5，向上滑动(从height*4/5滑动到height*1/5)后再操作。");
                        driver.swipe(width/2,height*4/5,width/2,height*1/5,5000);
                    }

                }

            }catch (Exception e){
                //e.printStackTrace();
                elementIsDispaly = false;
                //System.out.println("元素未显示，向上滑动(从height*4/5滑动到height*1/5)后再检查元素是否出现。");
                driver.swipe(width/2,height*4/5,width/2,height*1/5,5000);
            }
        }
    }

    //向下滑动找元素未写代码


}
